`ifndef RAL_SYS_IRQ
`define RAL_SYS_IRQ

import uvm_pkg::*;

class ral_reg_REG_PRJ_sys_irq_global_irq extends uvm_reg;
	rand uvm_reg_field resp_err;
	rand uvm_reg_field timeout;
	rand uvm_reg_field inner_err;

	function new(string name = "REG_PRJ_sys_irq_global_irq");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.resp_err = uvm_reg_field::type_id::create("resp_err",,get_full_name());
      this.resp_err.configure(this, 1, 0, "W1C", 1, 1'h0, 1, 0, 0);
      this.timeout = uvm_reg_field::type_id::create("timeout",,get_full_name());
      this.timeout.configure(this, 1, 1, "W1C", 1, 1'h0, 1, 0, 0);
      this.inner_err = uvm_reg_field::type_id::create("inner_err",,get_full_name());
      this.inner_err.configure(this, 1, 2, "W1C", 1, 1'h1, 1, 0, 0);
   endfunction: build

	`uvm_object_utils(ral_reg_REG_PRJ_sys_irq_global_irq)

endclass : ral_reg_REG_PRJ_sys_irq_global_irq


class ral_block_REG_PRJ_sys_irq extends uvm_reg_block;
	rand ral_reg_REG_PRJ_sys_irq_global_irq global_irq;
	rand uvm_reg_field global_irq_resp_err;
	rand uvm_reg_field resp_err;
	rand uvm_reg_field global_irq_timeout;
	rand uvm_reg_field timeout;
	rand uvm_reg_field global_irq_inner_err;
	rand uvm_reg_field inner_err;

	function new(string name = "REG_PRJ_sys_irq");
		super.new(name, build_coverage(UVM_NO_COVERAGE));
	endfunction: new

   virtual function void build();
      this.default_map = create_map("", 0, 4, UVM_LITTLE_ENDIAN, 0);
      this.global_irq = ral_reg_REG_PRJ_sys_irq_global_irq::type_id::create("global_irq",,get_full_name());
      this.global_irq.configure(this, null, "");
      this.global_irq.build();
      this.default_map.add_reg(this.global_irq, `UVM_REG_ADDR_WIDTH'hC, "RW", 0);
		this.global_irq_resp_err = this.global_irq.resp_err;
		this.resp_err = this.global_irq.resp_err;
		this.global_irq_timeout = this.global_irq.timeout;
		this.timeout = this.global_irq.timeout;
		this.global_irq_inner_err = this.global_irq.inner_err;
		this.inner_err = this.global_irq.inner_err;
   endfunction : build

	`uvm_object_utils(ral_block_REG_PRJ_sys_irq)

endclass : ral_block_REG_PRJ_sys_irq



`endif
